/* eslint-disable @typescript-eslint/no-var-requires */
const path = require("path");
const PAGES = require('./config/pages')
console.log("object%%%%%%%%%%%%%%%%%%",process.env)
const isDev = (process.env.NODE_ENV === 'development')
let pages = {}
let moduleName = process.env.MODULE_NAME
console.log("object%%%%%%%%%%%%%%%%%%55555", moduleName)
// const UglifyPlugin = require('uglifyjs-webpack-plugin')
// const CompressionWebpackPlugin = require('compression-webpack-plugin')
/*需要npm或者yarn 安装两个第三方
	npm i -D  uglifyjs-webpack-plugin 或 npm yarn add -D  uglifyjs-webpack-plugin
	npm i -D  compression-webpack-plugin 或 yarn add -D  compression-webpack-plugin
*/
// 目前做了分模块打包，怎么才能做到全量打包呢。
const project = process.argv[process.argv.length - 1];
function resolve (dir) {
  return path.join(__dirname, dir)
}
if (isDev) {
  // 本地开发编译的模块
  if (process.argv[process.argv.length - 1] === '--progress') {
      // 编译全部
      pages ={
          index:{
                  entry:`src/main.js`,
          /*这个是根入口文件*/
          // 模板文件
          template: `public/index.html`,
          // 输出文件
          filename: 'index.html',

          }
      }
  } else {
      // 编译部分
      const moduleList = process.argv[process.argv.length - 1].split(',')
      moduleList.forEach(item => {
          pages[item] = PAGES[item]
      })
  }
}else{
 
  //  构建模块的名称
   if (!PAGES[moduleName]) {
      console.log('**模块名不正确**')
      return
  }
  pages[moduleName] = PAGES[moduleName]

}
module.exports = {
  publicPath: "./", // 基本路径
  outputDir: "dist/"+`${project}`, // 输出文件目录
  lintOnSave: false, // eslint-loader 是否在保存的时候检查
  assetsDir: "static", //放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。
  runtimeCompiler: true,
  productionSourceMap: false, // 生产环境是否生成 sourceMap 文件，一般情况不建议打开
  pages: {
    index: {
      // page 的入口
      entry: 'src/views/'+`${moduleName}`+'/main.js',
      // 模板来源
      template: 'public/index.html',
      // 在 dist/index.html 的输出
      filename: 'index.html',
      // 当使用 title 选项时，
      // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
      title: 'Index Page',
      // 在这个页面中包含的块，默认情况下会包含
      // 提取出来的通用 chunk 和 vendor chunk。
      chunks: ['chunk-vendors', 'chunk-common', 'index']
    },
    // 当使用只有入口的字符串格式时，
    // 模板会被推导为 `public/subpage.html`
    // 并且如果找不到的话，就回退到 `public/index.html`。
    // 输出文件名会被推导为 `subpage.html`。
    // productionSourceMap:'false',
  },
  // webpack配置
  //对内部的 webpack 配置进行更细粒度的修改 https://github.com/neutrinojs/webpack-chain see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
  chainWebpack: config => {
    //修改文件引入自定义路径
    config.resolve.alias
      .set('@', resolve('src'))
  },
  //调整 webpack 配置 https://cli.vuejs.org/zh/guide/webpack.html#%E7%AE%80%E5%8D%95%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%B9%E5%BC%8F

  css: {
    // 启用 CSS modules
    requireModuleExtension: false,
    // 是否使用css分离插件
    extract: true,
    // 开启 CSS source maps，一般不建议开启
    sourceMap: false,
    // css预设器配置项
    loaderOptions: {
      sass: {
        prependData: `@import "@/styles/global.scss";`
      },
    }
  },
  pwa: {}, // PWA 插件相关配置
  // webpack-dev-server 相关配置 https://webpack.js.org/configuration/dev-server/
//   devServer: {
//     // host: 'localhost',
//     host: "192.168.137.1",
//     port: 8000, // 端口号
//     https: false, // https:{type:Boolean}
//     open: true, //配置自动启动浏览器  http://172.11.11.22:8888/rest/XX/
//     hotOnly: true, // 热更新
//     // proxy: 'http://localhost:8000'   // 配置跨域处理,只有一个代理
//     proxy: {
//       //配置自动启动浏览器
//       "/api": {
//         target: "http://172.16.68.134:8089",
//         changeOrigin: true,
//         // ws: true,//websocket支持
//         secure: false
//       },
//       "/api1": {
//         target: "http://172.16.68.134:8089",
//         changeOrigin: true,
//         //ws: true,//websocket支持
//         secure: false
//       }
//     }
//   },
  // 第三方插件配置 https://www.npmjs.com/package/vue-cli-plugin-style-resources-loader
  pluginOptions: {}
};


